package com.rd.student.jiaji.class1.jinhongyu.day0802.lianxi;

import java.util.regex.Pattern;

public class Test01 {
//    正则表达式：验证 PIN
//    创建一个函数，该函数将通过正则表达式测试字符串是否是有效的 PIN。
//    有效的 PIN 具有：
//    正好 4 或 6 个字符。
//    只有数字字符 (0-9)。
//    没有空格。
    public static void main(String[] args) {
//        正则表达式是对字符串操作的一种逻辑公式，
//        就是用事先定义好的一些特定字符、及这些特定字符的组合，
//        组成一个“规则字符串”，这个“规则字符串”用来表达对字符串的一种过滤逻辑。
//        用 java.util.regex 包中的 Pattern 和 Matcher 类

        String str1 = "1234";
        String str2 = "12345";
        String pattern = "^\\d{4}$|^\\d{6}$";

        // ^：匹配字符串的开头。
        // $：匹配字符串的结尾。
        // \\d：匹配一个数字字符（0-9）。
        // {4}：表示前面的字符（在这里是 \\d）必须出现恰好 4 次。
        // |：表示逻辑或，即匹配左边或右边的表达式。
        // {6}：表示前面的字符（在这里是 \\d）必须出现恰好 6 次。

        System.out.println(Pattern.matches(pattern, str1));
        System.out.println(Pattern.matches(pattern, str2));
        //Pattern.matches(String regex, CharSequence input)
        //编译给定的正则表达式并尝试将给定的输入与其匹配

        //Interface CharSequence 接口
        //所有已知实现类：
        //CharBuffer ， Segment ， String ， StringBuffer ， StringBuilder
    }
}
